package org.komarichin.beans;

import org.komarichin.beans.seo.ISeo;

import java.util.List;

/**
 * User: Mykhaylo Komarichyn
 * Date: 11.02.2010
 * Time: 10:12:08
 */
public interface IPost<PK> extends ISeo, IGenericEntity<PK> {
    /**
     * @return post content
     */
    String getContent();

    /**
     * @param content new post content
     */
    void setContent(String content);

    /**
     * @return true if drafting
     */
    boolean isDraft();

    /**
     * @param draft change drafting status
     */
    void setDraft(boolean draft);

    /**
     * @return user name
     */
    String getAuthorName();

    /**
     * @param authorName new user name
     */
    void setAuthorName(String authorName);

    /**
     * @return post's language
     */
    ILanguage getLanguage();

    /**
     * @param lang new post's language
     */
    void setLanguage(ILanguage lang);

    /**
     * @return link
     */
    String getSelfLink();

    /**
     * @param selfLink new link
     */
    void setSelfLink(String selfLink);

    /**
     * lazy load comments for post
     *
     * @return list of comments
     */
    @SuppressWarnings({"SameReturnValue"})
    List<IComment> getComments();
}
